package com.mdd.admin.service.goods;

import com.mdd.admin.validate.common.PageParam;
import com.mdd.admin.validate.goods.GoodsParam;
import com.mdd.admin.vo.goods.GoodsDetailVo;
import com.mdd.admin.vo.goods.GoodsListVo;
import com.mdd.admin.vo.goods.StatisticsGoodsVo;
import com.mdd.common.core.PageResult;
import com.mdd.common.entity.goods.Goods;

import java.util.List;
import java.util.Map;

/**
 * 服务服务接口类
 */
public interface IGoodsService {

	/**
	 * 服务列表
	 *
	 * @param pageParam 分页参数
	 * @param params    搜索参数
	 * @return PageResult<GoodsVo>
	 */
	PageResult<GoodsListVo> list(PageParam pageParam, Map<String, String> params);

	/**
	 * 服务详情
	 *
	 * @param id 主键ID
	 * @return Goods
	 */
	GoodsDetailVo detail(Long id);

	/**
	 * 服务新增
	 *
	 * @param goodsParam 参数
	 */
	void add(GoodsParam goodsParam);

	/**
	 * 服务编辑
	 *
	 * @param goodsParam 参数
	 */
	void edit(GoodsParam goodsParam);

	/**
	 * 服务删除
	 *
	 * @param ids 主键ID
	 */
	void del(List<Long> ids);

	void updateStatus(List<Long> ids, Integer status);

	StatisticsGoodsVo statistics(Map<String, String> params);

	List<GoodsDetailVo> detailByIds(List<Long> goodsIds);

	Goods getById(Long goodsId);

	/**
	 * 该方法是添加今日特价商品
	 *
	 * @param map 今日特价参数
	 */
	void addTodaySpecials(Map<String, GoodsParam> map);

	/**
	 * 该方法是查询今日特价
	 * @return 返回今日特价列表
	 */
	Map<String, GoodsDetailVo> selectTodaySpecials();
}
